<?php
/**
 * @link https://www.boxmoe.com
 * @package lolimeow
 */

//boxmoe.com===安全设置=阻止直接访问主题文件
if(!defined('ABSPATH')){
    echo'Look your sister';
    exit;
}
//时区设置
date_default_timezone_set('Asia/Shanghai');

//boxmoe.com===加载面板
define( 'OPTIONS_FRAMEWORK_DIRECTORY', get_template_directory_uri() . '/core/panel/' );
require_once dirname( __FILE__ ) . '/core/panel/options-framework.php';
require_once dirname( __FILE__ ) . '/options.php';
require_once dirname( __FILE__ ) . '/core/panel/options-framework-js.php';
//boxmoe.com===功能模块
require_once  get_stylesheet_directory() . '/core/module/fun-basis.php';
require_once  get_stylesheet_directory() . '/core/module/fun-admin.php';
require_once  get_stylesheet_directory() . '/core/module/fun-optimize.php';
require_once  get_stylesheet_directory() . '/core/module/fun-gravatar.php';
require_once  get_stylesheet_directory() . '/core/module/fun-navwalker.php';
require_once  get_stylesheet_directory() . '/core/module/fun-user.php';
require_once  get_stylesheet_directory() . '/core/module/fun-user-center.php';
require_once  get_stylesheet_directory() . '/core/module/fun-comments.php';
require_once  get_stylesheet_directory() . '/core/module/fun-seo.php';
require_once  get_stylesheet_directory() . '/core/module/fun-article.php';
require_once  get_stylesheet_directory() . '/core/module/fun-smtp.php';
require_once  get_stylesheet_directory() . '/core/module/fun-msg.php';
require_once  get_stylesheet_directory() . '/core/module/fun-no-category.php';
require_once  get_stylesheet_directory() . '/core/module/fun-shortcode.php';

// 只显示指定分类内的文章，如果要全部显示，请删掉或者注释这段代码
function boxmoe_filter_category($query) {
    if (!is_admin() && $query->is_main_query() && is_home()) {
        $query->set('category_name', 'lyyd');    // lyyd替换为你的分类别名
    }
}
add_action('pre_get_posts', 'boxmoe_filter_category');


// 让所有外链在新标签页打开（可选：也处理内链）
//放到主题的 functions.php 或自定义插件里即可
add_filter( 'wp_loaded', function () {
	/*
	 * 优先级 99：尽量在其他插件/主题输出之后再处理，
	 * 防止被它们二次覆盖。
	 */
	ob_start( function ( $html ) {

		/* 
		 * 正则说明：
		 *   - 匹配 <a ... href="..." ...>
		 *   - 负向预查：跳过已带 target="_blank" 的链接
		 *   - 捕获已有属性，防止重复添加
		 */
		$pattern = '#<a(?:[^>]+?href=["\']([^"\']*)["\'][^>]*)>#is';

		$html = preg_replace_callback(
			$pattern,
			function ( $matches ) {

				$tag = $matches[0];

				// 已经带 target="_blank" 就跳过
				if ( stripos( $tag, 'target="_blank"' ) !== false ) {
					return $tag;
				}

				// 获取 href
				$href = $matches[1];

				// 如果想“仅外链”才新标签，取消下面三行注释
				// $home = parse_url( home_url(), PHP_URL_HOST );
				// $link = parse_url( $href, PHP_URL_HOST );
				// if ( ! $link || $link === $home ) return $tag;

				// 追加 target 及安全属性
				$tag = preg_replace(
					'#(<a\b[^>]*?)>#is',
					'$1 target="_blank" rel="noopener noreferrer">',
					$tag
				);

				return $tag;
			},
			$html
		);

		return $html;
	} );
}, 99 );

//boxmoe.com===自定义代码




